# 思路： 最大的值，一定是整除里面最小的那个，最小的值，通过二分查找

n=int(input())
a=[]
for i in range(n):
    x,y=map(int,input().split())
    a.append((x//y,x,y))

a.sort()
# 最大值 一定是整除最小的哪一个
max_ans=a[0][0]

# 假设 当前为x 满足条件 ，需要扩大范围
def chck(x):
    for i in range(n):
        cur=a[i][1]//x
        # 整除x
        if cur != a[i][2]:
            return True
    return False
# 二分的左右 区间
l,r=1,max_ans

while l+1<r:
    mid=(l+r)//2
    if chck(mid):
        l=mid
    else:
        r=mid
# 最小的里面找满足条件的
print(r,max_ans)
